第一天
1. script写法同style样式，也可以写在头部，可以写在元素内部配合事件，也可以引入一个外部文件，引入的不能在标签中写代码

2. javascript是严格区分大小写，php区分大小写有常量和变量，不区分大小写的有类名，函数名

3. 注释用的是 /**/  // ; 其中document.write('hello,world!')是向屏幕输出

4. 语句结束符号用的是';'或者换行

5. 关键字和保留字
   php变量不能定义系统的名字
   js变量名不能用关键字 break,else,new,var,case,finally,return,void,catch等...

6. 变量名
   数字，字母，下划线或$，不能以数字开头($无实际意义)
   弱类型的语言声明变量的时候，不需要声明类型
   以var开头    var 变量名=值

7. 数据类型
   数据类型种类
   基础类型: String       Number     Boolean
   符合类型: Array        Object
   其他类型: Null         undefined    function
   检测数据类型:typeof()
   Array Null undefined 也是对象
   function类型也是函数

8. 字符串定义
   js单双引号没区别，都可以转移字符串，都不能解析变量
   字符串的连接符是'+'

9. 数值类型
   值得表达式方式是:十进制，十六进制，八进制，科学计数法  infinity  -infinity

10. 类型转换
   A: 强制转换为Number
   Number()    parseInt()    parseFloat()
   B: 其他
   String()    Boolean()

11. 类型转换(隐性)
    Boolean环境，出现if条件的时候
    String环境，出现字符串运算符，就是'+'号的时候，但是String的优先级更高

12. this运算符号
    this代表的是当前的对象，与php的$this是一个道理

13. 语句
    while语句    do...while语句   for语句    for...in 语句
    break语句    continue语句     with语句

14. 获取html元素
    document.getElementById()           通过ID获取元素(获取一个元素)
    document.getElementsByTageName()    通过标签名获取一组元素
    图片元素属性src，所有的html元素都可以被js当作元素对象，标签里写了什么，就有什么属性，可以获取，可以设置，获取或设置元素的属性

15. 获取或设置元素的css属性值
    backgroundColor   驼峰命名法，数字、字母、下划线不能有
    当获取css属性值必须是行内式 ，写在标签内部

16. 定时
    setInterval()多次定时，两个参数，第一个是调用函数，第二个是时间，一般不加
    setTimeout()      单次定时
    clearInterval()   清除定时
    clearTimeout()    清除定时

=====================================================================
第二天
1. js函数的定义(3种方式)
   js函数的特点，函数也是数据类型，可以把函数名认为是变量
   js函数可以重复定义，后面覆盖前面的，跟php不一样

   A: function 关键字定义方式
      function demo(a,b){
        code...
    }

       demo('xiao','cao')

   B: 表达式方式
       var demo=function(a,b){
        code...
     }
        demo(a,b)

   C: Function 函数构造方式
      var demo=new Function('a','b',"console.log(a+b+c)");
        demo('小','拓','艹')

2. 函数的调用
   函数名加() 才是调用，函数代码才执行
   不加() 是引用该函数

3. 函数的参数
   实参>形参  无所谓      实参<形参  undefined

4. 可变参数数量的函数
   arguments  获取所有的实参

5. 变量的作用域
   在函数外部用var是全局变量
   在函数内部用var是局部变量，不加var才是全局变量
   ================================================
对象的声明(4种)，获取对象的构造函数(obj.constructor)
   A: Object 构造函数
   var object=new Object();
   obj.name="小燕燕";
   obj.age=29;
   obj.demo=function(){
     console.log("我的名字是"+this.name+"今年"+this.age+"岁了");
 }

  obj.demo();   方法调用
  以上是对对象的改变，改变的是自己的，不影响
  对类的改变，类的属性改变了，意味着所有的实例都将会改变

  B: json方式，属性和方法可以写在下面，也可以写在里面
    var obj={name:"徐",age:20,demo:function(){
       console.log("我叫"+this.name+"今年"+this.age+"岁了");
  }}
     obj.demo();  调用方法

  C: 自定义构造函数
     function User(){
      this.name="静静";
      this.age=20;
      this.demo=function(){
      console.log(this.name+":"+this.age)
    }
   }
   好处:可以实例化好几个，每一个都有这个属性和方法，用的比较少，和php较相似

   var obj=new User();
   document.write("我的名字是"+this.name+'今年'+this.age+"岁了")；  
   obj.demo();


  D: 直接实例化构造函数
    var obj=new fucntion(){
       this.name="尽两";
       this.age=20;
       this.demo=function(){
       console.log("我叫"+this.name+"今年"+this.age+"岁了")
     }
  }
     obj.demo();

7. 数字的构造函数是Number，字符串的构造函数是String, true的构造函数是Boolean,所以都是对象

8. 对象的原型方法(prototype)，用来给构造函数(类)添加方法
   function User(){
     this.name="孝敬";
     this.age=20;
     this.demo=function(){
     console.log(this.name+":"+this.age);
   }
 }

      var obj1=new User();
        obj.getInfo=function(){
        console.log('demo');     //这个是可以
 }
      User.prototype.getInfo=function(){
        //原型方法给类添加，所有对象都可以用了哦
        console.log("消息");
 }


      var obj2=new User(); //obj2对象没有getInfo方法 ,此时可以调用了
         obj2.getInfo();

9. 给系统函数添加方法(Number(),String(),Boolean(),Array(),Object()...)

    所有的数都是Number的实例
    prototype作用:给系统或第三方构造函数(类)扩展方法(类似于php的继承)

    Number.prototype.add=function(m){
       return m+this;   //this表示Number的实例,number就是这个数
  }
    var a=100;
    console.log(a.add(39));   结果是139

10. 运算符(deleter)，删除对象某个成员
    function User(){
     this.name="系哦啊";
     this.age=20;
     this.demo=function(){
        console.log(this.name+":"+this.age)
   }
  }

    var obj1=new User();
    obj1.demo();
    deleter obj1.name;
    deleter obj1.name


    //join查询
    select * from user,image where "user.id=image.uid";
    select * from user join image on "user.id=image.uid";
    seletc * from user inner join image on "user.id=image.uid";
    select * from user straignt_join image on "user.id=image.uid"
    select * from user cross join  image on "user.id=image.uid"


    select * from user left join image where "user.id=image.id";
    select * from user right join image where "user.id=image.id";




        